package pro.shushi.pamirs.auth.api.enumeration;

import pro.shushi.pamirs.meta.annotation.Errors;
import pro.shushi.pamirs.meta.common.enmu.ExpBaseEnum;

@Errors(displayName = "认证模块错误枚举")
public enum AuthExpEnumerate implements ExpBaseEnum {

    SYSTEM_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10064000, "系统异常"),
    AUTH_NO_PERMISSION(ERROR_TYPE.SECURITY_ERROR, 10064001, "无权限进行该操作"),
    AUTH_NO_FIELD_PERMISSION(ERROR_TYPE.SECURITY_ERROR, 10064002, "字段的操作不被允许"),
    SQL_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10064003, "数据库异常"),
    SERVER_ACTION_ID_NULL_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10064004, "服务器动作id为空"),
    AUTH_NO_SAME_MODEL_PERMISSION(ERROR_TYPE.SECURITY_ERROR, 10064005, "查询的权限组列表并不是对同一个资源的访问"),
    AUTH_NO_MODEL_PERMISSION(ERROR_TYPE.SECURITY_ERROR, 10064006, "没有为权限设置模型"),
    AUTH_NO_ROW_PERMISSION(ERROR_TYPE.SECURITY_ERROR, 10064007, "没有行级别的权限"),
    AUTH_SEARCH_ROW_PERMISSION(ERROR_TYPE.SECURITY_ERROR, 10064008, "查询权限异常"),
    AUTH_API_ACTION_PERMISSION(ERROR_TYPE.SECURITY_ERROR, 10064009, "获取行为权限的API异常"),
    AUTH_EXISTED_ROLE_PERMISSION(ERROR_TYPE.SECURITY_ERROR, 10064010, "该角色已经存在"),
    AUTH_FLUSH_ROLE_NO_ROLE_PERMISSION(ERROR_TYPE.SECURITY_ERROR, 10064011, "刷新权限失败，没有选中角色"),
    AUTH_UPDATE_ROLE_NULL_DATA_DATA_ERROR(ERROR_TYPE.SECURITY_ERROR, 10064012, "保存角色权限失败,没有选中角色,权限组为:{}"),
    AUTH_UPDATE_ROLE_ERROR_MODEL_DATA_ERROR(ERROR_TYPE.SECURITY_ERROR, 10064013, "保存角色权限失败,配置的模型数据在系统中不存在,权限组为:{}"),
    AUTH_UPDATE_ROLE_DATA_ERROR(ERROR_TYPE.SECURITY_ERROR, 10064014, "保存角色权限失败,部分数据缺失,权限组为:{}"),
    AUTH_UPDATE_ROLE_ROW_DATA_ERROR(ERROR_TYPE.SECURITY_ERROR, 10064015, "保存角色权限失败,配置的数据权限异常"),
    AUTH_UPDATE_ROLE_COL_DATA_ERROR(ERROR_TYPE.SECURITY_ERROR, 10064016, "保存角色权限失败,配置的列权限异常,权限组为:{}"),
    AUTH_UPDATE_ROLE_ACTION_DATA_ERROR(ERROR_TYPE.SECURITY_ERROR, 10064017, "保存角色权限失败,配置的行为权限异常,权限组为:{}"),
    AUTH_ROLE_MENU_PERMISSION_NULL_ERROR(ERROR_TYPE.SECURITY_ERROR, 10064018, "保存角色权限失败,配置的菜单权限数据为空,权限组为:{}"),
    AUTH_ROLE_MENU_PERMISSION_TOO_MANY_ERROR(ERROR_TYPE.SECURITY_ERROR, 10064019, "保存角色权限失败,配置的菜单权限数据异常,权限组为:{}"),
    AUTH_ROLE_MENU_PERMISSION_PARENT_ERROR(ERROR_TYPE.SECURITY_ERROR, 10064020, "保存角色权限失败,配置的子菜单有权限，上一级菜单无权限"),
    AUTH_ROLE_MENU_PERMISSION_DOMAIN_ERROR(ERROR_TYPE.SECURITY_ERROR, 10064021, "保存角色权限失败,无效的菜单配置,权限组为:{}"),
    AUTH_UPDATE_ROLE_ERROR_MODEL_DB_DATA_ERROR(ERROR_TYPE.SECURITY_ERROR, 10064022, "保存角色权限失败,配置的模型在系统中不存在,权限组为:{}"),
    INTERRUPTED_EXCEPTION(ERROR_TYPE.SECURITY_ERROR, 10064023, "中断异常"),
    AUTH_SYSTEM_ROLE_CANOT_DELETE(ERROR_TYPE.SECURITY_ERROR, 10064024, "系统初始化角色不允许删除"),
    AUTH_GROUP_ROLE_DATA_ERROR(ERROR_TYPE.SECURITY_ERROR, 10064025, "角色不能为空"),
    AUTH_EXPRESSION_OBJ_IS_NULL(ERROR_TYPE.BIZ_ERROR, 10064026, "表达式未指定作用对象"),
    AUTH_EXPRESSION_BLOCK_FUN_BLANK(ERROR_TYPE.BIZ_ERROR, 10064027, "函数不存在"),
    AUTH_GROUP_NAME_EXISTS_ERROR(ERROR_TYPE.SECURITY_ERROR, 10064028, "权限组名称已存在"),
    AUTH_NO_MODULE_PERMISSION(ERROR_TYPE.SECURITY_ERROR, 10064029, "参数错误：未传入模块编码"),
    AUTH_GROUP_PARAM_ERROR(ERROR_TYPE.SECURITY_ERROR, 10064030, "参数错误"),
    ILLEGAL_ARG(ERROR_TYPE.BIZ_ERROR, 10064031, "请求参数异常"),
    AUTH_INVALID_RESOURCE_TYPE_ERROR(ERROR_TYPE.DATA_ERROR, 10064032, "无效的资源类型"),
    AUTH_INVALID_RESOURCE_ID_ERROR(ERROR_TYPE.DATA_ERROR, 10064033, "无效的资源ID"),
    AUTH_INVALID_RESOURCE_MODULE_ERROR(ERROR_TYPE.DATA_ERROR, 10064034, "无效的资源模块"),
    AUTH_INVALID_RESOURCE_ERROR(ERROR_TYPE.DATA_ERROR, 10064035, "无效的资源"),
    AUTH_PERMISSION_NOT_EXIST_ERROR(ERROR_TYPE.BIZ_ERROR, 10064036, "权限项不存在"),
    AUTH_PERMISSION_ID_NULL_ERROR(ERROR_TYPE.DATA_ERROR, 10064037, "权限项ID不能为空"),
    AUTH_INVALID_ROLE_TYPE_ERROR(ERROR_TYPE.BIZ_ERROR, 10064038, "角色类型不存在"),
    AUTH_ROLE_TYPE_NAME_IS_NULL_ERROR(ERROR_TYPE.BIZ_ERROR, 10064039, "角色类型名称不允许为空"),
    AUTH_ROLE_TYPE_NAME_TOO_LONG_ERROR(ERROR_TYPE.BIZ_ERROR, 10064040, "角色类型名称过长"),
    AUTH_ROLE_TYPE_NAME_EXISTS_ERROR(ERROR_TYPE.BIZ_ERROR, 10064041, "角色类型名称已存在"),
    AUTH_ROLE_TYPE_CODE_TOO_LONG_ERROR(ERROR_TYPE.BIZ_ERROR, 10064042, "角色类型编码过长"),
    AUTH_ROLE_TYPE_CODE_EXISTS_ERROR(ERROR_TYPE.BIZ_ERROR, 10064043, "角色类型编码已存在"),
    AUTH_ROLE_ID_NULL_ERROR(ERROR_TYPE.BIZ_ERROR, 10064044, "角色ID不能为空"),
    AUTH_INVALID_ROLE_ERROR(ERROR_TYPE.BIZ_ERROR, 10064045, "角色不存在"),
    AUTH_ROLE_NAME_IS_NULL_ERROR(ERROR_TYPE.BIZ_ERROR, 10064046, "角色名称不允许为空"),
    AUTH_ROLE_NAME_TOO_LONG_ERROR(ERROR_TYPE.BIZ_ERROR, 10064047, "角色名称过长"),
    AUTH_ROLE_NAME_EXISTS_ERROR(ERROR_TYPE.BIZ_ERROR, 10064048, "角色名称已存在"),
    AUTH_ROLE_CODE_TOO_LONG_ERROR(ERROR_TYPE.BIZ_ERROR, 10064049, "角色编码过长"),
    AUTH_ROLE_CODE_EXISTS_ERROR(ERROR_TYPE.BIZ_ERROR, 10064050, "角色编码已存在"),
    AUTH_GROUP_TYPE_NULL_ERROR(ERROR_TYPE.BIZ_ERROR, 10064051, "权限组类型不能为空"),
    AUTH_INVALID_GROUP_TYPE_ERROR(ERROR_TYPE.BIZ_ERROR, 10064052, "无效的权限组类型"),
    AUTH_INVALID_GROUP_ERROR(ERROR_TYPE.BIZ_ERROR, 10064053, "权限组不存在"),
    AUTH_GROUP_NAME_NULL_ERROR(ERROR_TYPE.BIZ_ERROR, 10064054, "权限组名称不能为空"),
    AUTH_GROUP_NAME_ILLEGAL_ERROR(ERROR_TYPE.BIZ_ERROR, 10064055, "权限组名称不能包含井号(#)"),
    AUTH_GROUP_NAME_TOO_LONG_ERROR(ERROR_TYPE.BIZ_ERROR, 10064056, "权限组名称过长"),
    AUTH_GROUP_MODEL_NULL_ERROR(ERROR_TYPE.BIZ_ERROR, 10064057, "无效的权限组模型"),
    AUTH_GROUP_NOT_MANAGEMENT_ERROR(ERROR_TYPE.BIZ_ERROR, 10064058, "未获得管理权限，无法进行该操作"),
    AUTH_PERMISSION_ITEM_NAME_IS_NULL_ERROR(ERROR_TYPE.BIZ_ERROR, 10064059, "权限项名称不允许为空"),
    AUTH_PERMISSION_ITEM_NAME_TOO_LONG_ERROR(ERROR_TYPE.BIZ_ERROR, 10064060, "权限项名称过长"),
    AUTH_PERMISSION_ITEM_NAME_EXIST_ERROR(ERROR_TYPE.BIZ_ERROR, 10064061, "权限项名称已存在"),
    AUTH_PERMISSION_ITEM_EXIST_REFERENCE_ERROR(ERROR_TYPE.BIZ_ERROR, 10064062, "权限项存在引用，无法删除"),
    AUTH_SYSTEM_ROW_PERMISSION_NOT_UNIQUE_ERROR(ERROR_TYPE.BIZ_ERROR, 10064063, "系统行权限有且仅有一项"),
    AUTH_ACTION_PERMISSION_MODEL_NULL_ERROR(ERROR_TYPE.BIZ_ERROR, 10064064, "动作权限的模型编码不能为空"),
    AUTH_ACTION_PERMISSION_ACTION_NULL_ERROR(ERROR_TYPE.BIZ_ERROR, 10064065, "动作权限的动作名称不能为空"),
    AUTH_ACTION_PERMISSION_METADATA_TYPE_NULL_ERROR(ERROR_TYPE.BIZ_ERROR, 10064066, "动作权限的动作类型不能为空"),
    AUTH_ACTION_PERMISSION_METADATA_TYPE_ERROR_ERROR(ERROR_TYPE.BIZ_ERROR, 10064067, "动作权限的动作类型错误"),
    AUTH_FIELD_PERMISSION_MODEL_NULL_ERROR(ERROR_TYPE.BIZ_ERROR, 10064068, "字段权限的模型编码不能为空"),
    AUTH_FIELD_PERMISSION_FIELD_NULL_ERROR(ERROR_TYPE.BIZ_ERROR, 10064069, "字段权限的字段名称不能为空"),
    AUTH_RESOURCE_PERMISSION_MODEL_IS_NULL_ERROR(ERROR_TYPE.DATA_ERROR, 10064070, "资源权限项的模型编码不允许为空"),
    AUTH_RESOURCE_PERMISSION_NAME_IS_NULL_ERROR(ERROR_TYPE.DATA_ERROR, 10064071, "资源权限项的资源名称不允许为空"),
    AUTH_RESOURCE_PERMISSION_PATH_IS_NULL_ERROR(ERROR_TYPE.DATA_ERROR, 10064072, "资源权限项的资源路径不允许为空"),
    AUTH_FIELD_PERMISSION_MODEL_IS_NULL_ERROR(ERROR_TYPE.DATA_ERROR, 10064073, "字段权限项的模型编码不允许为空"),
    AUTH_FIELD_PERMISSION_FIELD_IS_NULL_ERROR(ERROR_TYPE.DATA_ERROR, 10064074, "字段权限项的字段名称不允许为空"),
    AUTH_INVALID_RESOURCE_PATH_ERROR(ERROR_TYPE.DATA_ERROR, 10064075, "无效的资源路径"),
    AUTH_INVALID_ROW_PERMISSION_ID_ERROR(ERROR_TYPE.DATA_ERROR, 10064076, "无效的行权限项ID"),
    AUTH_DELETE_ROW_PERMISSION_ERROR(ERROR_TYPE.DATA_ERROR, 10064077, "不允许删除系统行权限项"),
    AUTH_ROW_PERMISSION_ID_IS_NULL_ERROR(ERROR_TYPE.DATA_ERROR, 10064078, "行权限项的ID不允许为空"),
    AUTH_ROW_PERMISSION_CODE_IS_NULL_ERROR(ERROR_TYPE.DATA_ERROR, 10064079, "行权限项的编码不允许为空"),
    AUTH_ROW_PERMISSION_MODEL_IS_NULL_ERROR(ERROR_TYPE.DATA_ERROR, 10064080, "行权限项的模型编码不允许为空"),
    AUTH_ROW_PERMISSION_CODE_EXIST_ERROR(ERROR_TYPE.DATA_ERROR, 10064081, "行权限项的编码不允许重复"),
    AUTH_ROW_PERMISSION_NAME_EXIST_ERROR(ERROR_TYPE.DATA_ERROR, 10064082, "行权限项的名称不允许重复"),
    AUTH_ROW_PERMISSION_FILTER_EXIST_ERROR(ERROR_TYPE.DATA_ERROR, 10064083, "行权限项的过滤条件不允许重复"),
    AUTH_ROW_PERMISSION_NAME_IS_NULL_ERROR(ERROR_TYPE.DATA_ERROR, 10064084, "行权限项的名称不允许为空");

    private ERROR_TYPE type;

    private int code;

    private String msg;

    AuthExpEnumerate(ERROR_TYPE type, int code, String msg) {
        this.type = type;
        this.code = code;
        this.msg = msg;
    }

    @Override
    public ERROR_TYPE type() {
        return type;
    }

    @Override
    public int code() {
        return code;
    }

    @Override
    public String msg() {
        return msg;
    }
}
